package com.bcqn.service;

import com.bcqn.model.Post;
import com.bcqn.vo.PostQueryVo;
import com.bcqn.vo.PostVo;
import com.github.pagehelper.PageInfo;

import java.util.Map;

/**
 * PostService
 *
 * @author Kelly
 * @version v1.0
 * @date 2020/4/17 21:29
 */
public interface PostService {
    /**
     * 查询热门帖子列表
     * @param postQueryVo
     * @return
     */
    PageInfo<PostVo> getHotPostList(PostQueryVo postQueryVo);

    /**
     * 查询热门帖子列表
     * @param postQueryVo
     * @return
     */
    PageInfo<PostVo> getLatestPostList(PostQueryVo postQueryVo);

    /**
     * 新增/修改帖子
     * @param post
     * @return
     */
    int update(Post post);

    /**
     * 帖子点赞/取消点赞
     * @param postId
     * @param userId
     * @param likeStatus
     * @return
     */
    int updateLike(Long postId, Long userId, Integer likeStatus);


    /**
     * 根据id查询帖子信息
     * @param id
     * @return
     */
    PostVo getById(Long id, Long userId);

    /**
     * 收藏/取消收藏帖子
     * @param postId
     * @param userId
     * @param status
     * @return
     */
    int collection(Long postId, Long userId, Integer status);

    /**
     * 根据userId获取收藏列表
     * @param postQueryVo
     * @return
     */
    PageInfo<PostVo> getMyCollection(PostQueryVo postQueryVo);

    /**
     * 批量更新帖子点赞信息
     * @param map
     */
    int batchUpdatePostLike(Map<Long, Integer> map);
}
